// Have include guard.
#ifndef FPK_CARTESIANVALUE_HPP
#define FPK_CARTESIANVALUE_HPP

/**
 *  The CartesianValue struct stores a left value and a right value to be sent to a TankDriveSubsystem.
 */
struct CartesianValue
{
	private:
		double m_x;
		double m_y;
		double m_rotation;
	public:
		inline CartesianValue() :
			m_x(0),
			m_y(0),
			m_rotation(0)
		{
			
		}
		
		inline CartesianValue(double x, double y, double rotation) :
			m_x(x),
			m_y(y),
			m_rotation(rotation)
		{
		}
		
		inline CartesianValue operator *(double right) const
		{
			return CartesianValue(m_x * right, m_y * right, m_rotation * right);
		}
		
		inline double GetX() const
		{
			return m_x;
		}
		
		inline double GetY() const
		{
			return m_y;
		}
		
		inline double GetRotation() const
		{
			return m_rotation;
		}
};

#endif // #ifndef FPK_CARTESIANVALUE_HPP
